<?php
/**
 * 
 * 根据话题抓取微博数据
 * @author yangchao
 * @since 2012-03-19
 */
if (!file_exists("../SINASRV_CONFIG")) {
	echo "Read the sinasrv config error!\n";
//	exit();
} else {
   $array_config = parse_ini_file("../SINASRV_CONFIG", true); var_dump($array_config);
   
   $_SERVER = array_merge($_SERVER, $array_config); 
}


/*ini_set("display_errors",ture);
error_reporting(E_ALL);*/

define("CRON_NAME","cron_update_sina_mblog_count");//cro名称，要求唯一
set_time_limit(0);
$_GET["db_debug"] = true;
$_GET["no_pref_debug"] = true;
$_GET["api_debug"] = true;

//15分钟一次,执行1000条
define("PCOUNT",10);//每次处理多少mid
define("MAX_PAGE",1000); //定义每个进程处理最大的页数
define("TOTAL_PROCESS",1);//添加新进程需要更新这个配置
define("NOW_PROCESS",$argv[1] ? $argv[1] : 0);//当前进程ID=0 可以申请如下php xxx 1
define("CRON_START_TIME",time());



include_once($_SERVER['DOCUMENT_ROOT'] ."/include/user/inc.php");
include_once($_SERVER['DOCUMENT_ROOT'] ."/include/tucao/inc.php");
include_once($_SERVER['DOCUMENT_ROOT'] ."/include/mblog/inc.php");

class mod_cron_engine_main extends mod_cron_engine
{
	function __construct($current_process_id)
	{
		parent::__construct($current_process_id,CRON_NAME);
	}
	
	
	function craw()
	{
		$this->get_data();
	}
	
	
	function  run()
	{
		//开始跑cron之前预先获取数据（start_id等）
		$this->before_run();
		
		//正式获取数据
		$this->craw();
		
		
		$this->after_run();
	}
	
	
	function get_data()
	{
		$this->replace_into_data(0);
		
		$db_mblog_cron_topic_tag = new db_mblog_cron_topic_tag();
		$mblog_from_api = new mblog_from_api();
		
		//获取tag的总数
		$count = $db_mblog_cron_topic_tag->cron_get_mblog_topic_count();
		echo "tag_count:$count<br>\n";
		$total_page = ceil($count/PCOUNT);
		if($total_page > MAX_PAGE && defined("MAX_PAGE")) $total_page = MAX_PAGE;
			
		for($i=1;$i<=$total_page;$i++)
		{
			$this->get_list_by_page($i);
		}
		
		
		$this->replace_into_data(1);
	}	
	
	function get_list_by_page($p)
	{
		$db_mblog_cron_topic_tag = new db_mblog_cron_topic_tag();
		
		//分批次取tag名称
		$food_tag = $db_mblog_cron_topic_tag->cron_get_mblog_topic_list(0,$p,PCOUNT);
		
		foreach($food_tag as $value)
		{
			$topic = $value["topic"];
			$id = $value["id"];
			if($id % TOTAL_PROCESS != NOW_PROCESS)//用总进程做控制 example: 3个进程  php xxx 1 只会执行除3余1的id
			{
				continue;
			}
			
			$show_type = $value["show_type"];
			if($topic)//处理抓取分页逻辑
			{
				$this->get_list_by_topic($topic,$id);
				$this->update_mblog_want($id);
				$this->update_count_gonglue($id);
			}
			
			
		}
		
		
			
	}
	
	function update_mblog_want($topic_id)
	{
		$sql ="select count(*) as count from mblog_want_content where topic_id = $topic_id";
		$db_base = new db_base();
		$res = $db_base->select($sql);
		$count = $res[0]["count"];
		
		$sql = "update mblog_cron_topic_tag set count_want = $count where id = $topic_id  ";
		$db_base->query($sql);
		
	
	}
	
	function update_count_gonglue($topic_id)
	{
		$sql ="select count(*) as count from gonglue where topic_id = $topic_id and status = 1";
		$db_base = new db_base();
		$res = $db_base->select($sql);
		$count = $res[0]["count"];
		
		$sql = "update mblog_cron_topic_tag set count_gonglue = $count where id = $topic_id  ";
		$db_base->query($sql);
		
	
	}
	
	
	//根据话题抓取数据并入库
	function get_list_by_topic($topic,$id)
	{
		$today =date("Y-m-d");
		$endtime = strtotime($today);
		$starttime = $endtime-86400*30;
		$mblog_from_api = new mblog_from_api();
		$mblog_list = $mblog_from_api->api_get_mblog_by_topic($topic,$ids="",$sort="",$fuid="",$province="",$city="",$starttime,$endtime,
				$hasori="",
				$hasret="",
				$hastext="",
				$haspic="",
				$hasvideo="",
				$hasmusic="",
				$haslink="",
				$hasat="",
				$hasv="",
				$istag="",
				$dup="",
				$antispam="",
				$base_app=0,
				$p,
				$pcount=1
				);
		$count_mblog_newly = 	$mblog_list["data"]["count"];	
		
		$starttime2 = $starttime - 86400*7;
		$endtime2 = $endtime - 86400*7;
		$mblog_list2 = $mblog_from_api->api_get_mblog_by_topic($topic,$ids="",$sort="",$fuid="",$province="",$city="",$starttime2,$endtime2,
				$hasori="",
				$hasret="",
				$hastext="",
				$haspic="",
				$hasvideo="",
				$hasmusic="",
				$haslink="",
				$hasat="",
				$hasv="",
				$istag="",
				$dup="",
				$antispam="",
				$base_app=0,
				$p,
				$pcount=1
				);
		$count_mblog_last_newly = 	$mblog_list2["data"]["count"];
		
		$db_mblog_cron_topic_tag = new db_mblog_cron_topic_tag();		
		$db_mblog_cron_topic_tag->update_mblog_cron_topic_tag_count($id,"",$count_mblog_newly,$count_mblog_last_newly);
		
		
		
	}
	
}

$m = new mod_cron_engine_main(NOW_PROCESS);
$m->run();
